# 函数
# def greet(name):
#     """
#     这是一个打招呼的函数，
#     通过name参数传递，
#     要打招呼的人名
#     """
#     print("Hello, " + name + ". Good morning!")

# greet('Paul')
# print(greet.__doc__) # 输出: 这是一个打招呼的函数，通过name参数传递，要打招呼的人名

# 递归函数
# def factorial(n):
#     """
#     这是一个计算阶乘的函数，
#     通过n参数传递，
#     要计算阶乘的数字
#     """
#     if n == 1: # 如果n等于1，返回1
#         return 1
#     else: # 如果n不等于1，返回n乘以n-1的阶乘
#         return n * factorial(n-1) # 递归调用factorial函数

# print(factorial(5)) # 输出: 120 5*4*3*2*1=120

# 匿名函数
# square = lambda x: x * x # 定义一个匿名函数，计算x的平方
# print(square(5)) # 输出: 25 5*5=25

# 匿名函数做为参数
# def apply_func(x, func): # 定义一个函数，通过func参数传递，要应用的函数
#     return func(x) # 返回func函数的返回值
# print(apply_func(3, square)) # 输出: 9 3*3=9
# list1 = [1, 2, 3, 4, 5] # 定义一个列表，包含1, 2, 3, 4, 5
# print(list(map(lambda x: (x * x), list1))) # 输出: [1, 4, 9, 16, 25]
# print(list(filter(lambda x: (x % 2 == 0), list1))) # 输出: [2, 4] 2, 4是偶数
